Many computing devices employ input devices that produce output streams for consumption by applications operating on the computing device. These input devices can include sensor devices (e.g., cameras, biometric devices) that obtain and output data in streams including one or more data frames, where a plurality of data frames can be output in frames according to a cadence. The streams are typically stored in memory and accessed by an operating system or one or more applications for analyzing and/or outputting data captured from the streams. In one example, a computing device may include a camera to facilitate capturing video for storing as a movie, performing video conferencing with a remote computing device, etc. In addition, the camera may be used for face authenticating a user to utilize one or more applications or other functions of the computing device based on comparing an image (or stream of images) captured by the camera to one or more other stored images according to a face recognition/authentication function. Similarly, for example, the computing device may include a fingerprint sensor to facilitate capturing fingerprint images for authenticating a user to utilize one or more applications or other functions of the computing device.
The input devices may be integral to the computing device or may be external to the computing device. In either case, the input devices may be coupled with the computing device via a wired or wireless interface, such as universal serial bus (USB), Firewire, Bluetooth, or any other type interface that may define a communication interface. The communication interface may introduce additional data into the data received from the input device, such as one or more headers for verifying integrity of the data. In a specific example, an input device may include a USB camera, and the USB interface may attach headers to data received from the USB camera to allow for verifying integrity of the data. An operating system of the computing device may include a driver for the USB camera, such as a USB video class (UVC) driver, which can verify the integrity of received stream data based on the header, remove the header from the stream data payload, and generate a data frame from one or more instances of received stream data payloads for providing to one or more applications.